既然我們的主題是跟 RAG 有關,且程式語言也是用 Python,那就不提好用的開源套件 -- Gradio 啦~~
在 2022 年,ChatGPT 興起,以及本地模型的助攻,Gradio 也因此產生
這個套件能夠透過簡單的 Python 程式去建構出一個前端頁面,相信大家也對大名鼎鼎的 Stable Diffusion 相當熟悉吧!!沒錯,他的前端頁面,也是用 Gradio 刻出來的,至於使用有多方便就不多說了,且又是用 Python 去撰寫,簡直省去了前端頁面的開發
官方也提供一個 PlayGround 讓開發者方便進行測試。
組織一個界面,一定要有一個模板,就像寫 C 語言,
,需要一個 main() 的進入點一樣
元件名稱 | 備註 |
---|---|
Blocks | 為 Gradio 中的基本元件。擁有最高自訂性,可再新增不同的功能元件 |
Interface | 繼承 Blocks 的元件。預設給予一個輸入以及一個輸出文字框,雖然一樣可以生成界面,但自訂性較無 Blocks 高 |
Row | 建立一個區塊讓元件可以水平排列 |
Column | 建立一個區塊讓元件可以垂直排列 |
Tabs | 分頁功能。若在同一個 Blocks 底下,需要分不同的頁面時可以用 |
這邊介紹幾個較為實用的功能元件
元件名稱 | 元件名稱 |
---|---|
Audio | Number |
Button | MultimodalTextbox |
Chatbot | Textbox |
Checkbox | Video |
ClearButton | BarPlot |
Dataframe | Image |
DownloadButton | Gallery |
Dropdown | LinePlot |
File(s) |
如與使用者互動的 Button、Checkbox、Radio 等等元件
或者透過官方的範例程式碼就可以打造一個簡單的前端介面
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
if __name__ == "__main__":
demo.launch()